Skip to content

chore: deck.gl 9.2 upgrade & loaders.gl, luma.gl upgrades - #3271

Merged
igorDykhta merged 84 commits into
masterfrom
igr/deckgl-9-2
Apr 3, 2026
Merged

chore: deck.gl 9.2 upgrade & loaders.gl, luma.gl upgrades#3271
igorDykhta merged 84 commits into
masterfrom
igr/deckgl-9-2

Conversation

@igorDykhta

@igorDykhta igorDykhta commented Dec 25, 2025

Copy link
Copy Markdown
Collaborator

TODO

  • investigate performance issues in raster tile layer

  • retest again

  • deck.gl 8.9.27 → 9.2.11

  • luma.gl 8.5.x → 9.2.6

  • loaders.gl 4.3.2 → 4.3.4,

  • nebula.gl → @deck.gl-community/editable-layers 9.2.8

  • app starts, as expected, no new console errors

  • point layer

  • arc layer

  • line layer

  • geojson layer

  • icon layer

  • grid layer

  • hexagon layer

  • cluster

  • heatmap

  • h3

  • s2

  • trip layer

  • 3d mesh

  • 3d buildings

  • internal column layer

  • vector tile layer

  • WMS layer

  • Polygon / Draw on Map

  • Tooltips & Interactions

  • Geocoder

  • 2d / perspective / split map

  • Export data

  • Export image

  • Filters

  • Geoarrow layers

  • Postprocessing effects

  • Light & Shadow

  • raster tile - bitmap pmtiles

  • raster tile - stac collections

@igorDykhta igorDykhta changed the title chore: WIP upgrades chore: deck.gl 9.2 upgrade & loaders.gl, luma.gl upgrades Dec 25, 2025
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
@igorDykhta
igorDykhta marked this pull request as ready for review March 26, 2026 16:03
Copilot AI review requested due to automatic review settings March 26, 2026 16:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Upgrades kepler.gl’s rendering stack to deck.gl 9.2 (plus luma.gl/loaders.gl/mjolnir updates) and adapts kepler’s custom layers/effects/tooling to the new APIs (device init, parameter-based blending, shader/module pipeline changes, editable layers replacement).

Changes:

  • Bump deck.gl to 9.2.x across packages, replace nebula.gl with @deck.gl-community/editable-layers, and update loaders.gl/luma.gl/math.gl.
  • Update kepler layers/effects/utilities to deck.gl 9 patterns (device initialization, parameters blending, updated shader/module plumbing for raster & postprocessing).
  • Adjust typings/TS config (TypeScript 5.6, moduleResolution: "bundler", local type augmentations) and test/tooling transpilation for ESM deps.

Reviewed changes

Copilot reviewed 97 out of 110 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
website/src/components/policy.js Formatting-only website copy change.
website/src/components/header.js JSX formatting tweak.
website/src/components/footer.js JSX formatting for footer legal text.
tsconfig.json Switch TS module resolution to bundler.
test/node/utils/export-utils-test.js Formatting-only test change.
test/node/utils/editor-utils-test.js Switch EditableGeoJsonLayer import to deck.gl-community package.
src/utils/src/index.ts Export new GL helpers (blending parameters + renderer patch).
src/utils/src/gl-utils.ts Replace GL-constant blending with deck.gl 9 parameters + DeckRenderer patch hook.
src/utils/src/export-utils.ts Formatting-only export alignment.
src/utils/src/effect-utils.ts Keep lighting effect module loaded; disable/enable shadow behavior safely for deck.gl 9.
src/utils/src/data-scale-utils.ts Add @ts-nocheck to bypass TS errors.
src/utils/src/data-container-utils.ts Formatting-only object literal expansion.
src/utils/package.json Upgrade deck.gl/luma/loaders versions for utils package.
src/types/reducers.d.ts Replace deck.gl MapViewState import with local type alias.
src/table/package.json Upgrade loaders.gl deps.
src/schemas/package.json Upgrade loaders.gl deps.
src/reducers/src/vis-state-updaters.ts Preserve isVisible during initial layer config setup.
src/reducers/src/vis-state-selectors.ts Add minimal typing on selector input state.
src/reducers/src/layer-utils.ts Move off @deck.gl/core/typed; loosen Deck layer prop typing.
src/reducers/package.json Upgrade loader-utils and math.gl/web-mercator.
src/processors/src/typedefs/deckgl.d.ts Remove legacy deckgl-typings bridge.
src/processors/src/data-processor.ts Switch editable Feature import to deck.gl-community package.
src/processors/package.json Remove deckgl-typings/nebula deps; upgrade loaders; add editable-layers.
src/layers/src/vector-tile/vector-tile-layer.ts Update deck.gl imports; adjust culling parameter for v9; add @ts-nocheck.
src/layers/src/vector-tile/mvt-layer.ts Update deck.gl imports; add @ts-nocheck.
src/layers/src/typedefs/deckgl.d.ts Remove legacy deckgl-typings bridge.
src/layers/src/trip-layer/trip-utils.ts Remove ts-expect-error (typing change).
src/layers/src/trip-layer/trip-layer.ts Formatting-only changes around column detection/props object.
src/layers/src/raster-tile/types.ts Update Tile header + texture prop types for v9; add @ts-nocheck.
src/layers/src/raster-tile/raster-tile-utils.ts Import TypedArray from public loader-utils entrypoint.
src/layers/src/raster-tile/raster-tile-layer.ts Deck v9 imports + redraw scheduling hook; add onRedrawNeeded plumbing; add @ts-nocheck.
src/layers/src/raster-tile/gpu-utils.ts Update luma constants/types; add @ts-nocheck.
src/layers/src/line-layer/line-layer.ts Adjust default layer props typing; remove explicit isVisible: false.
src/layers/src/icon-layer/icon-layer.ts Update culling to cullMode; add @ts-nocheck.
src/layers/src/hexagon-layer/hexagon-utils.ts Support fallback coordinate input; more robust position handling.
src/layers/src/hexagon-layer/hexagon-layer.ts Use cellOutline from picking info instead of recomputing geometry.
src/layers/src/grid-layer/grid-utils.ts Support fallback coordinate (deck.gl 9 picking changes).
src/layers/src/grid-layer/grid-layer.ts Use cellOutline from picking info instead of recomputing geometry.
src/layers/src/editor-layer/modify-mode-extended.ts Switch edit-modes imports to deck.gl-community editable-layers.
src/layers/src/editor-layer/editor-layer.ts Replace nebula EditableGeoJsonLayer/edit-modes with deck.gl-community; add @ts-nocheck.
src/layers/src/editor-layer/editor-layer-utils.ts Use PickingInfo type from @deck.gl/core; improve tooltip math nullish handling.
src/layers/src/cluster-layer/cluster-layer.ts Add ts-expect-error for untyped composite layer usage.
src/layers/src/base-layer.ts Update DataFilterExtension typing suppression comment for deck.gl 9 option.
src/layers/src/aggregation-layer.ts Update aggregation semantics for deck.gl 9 + per-bin filtering wrapper.
src/layers/package.json Upgrade deck.gl/loaders/luma; replace nebula with editable-layers.
src/effects/src/post-processing-effect.ts Switch luma effects import path; use module propTypes for defaults.
src/effects/src/custom-deck-lighting-effect.ts Rework lighting/shadow module patching for luma/deck 9 device pipeline.
src/effects/package.json Upgrade deck.gl/luma deps; add luma effects/engine.
src/duckdb/src/table/index.ts Remove stray trailing whitespace line.
src/duckdb/src/table/duckdb-table-utils.ts Formatting-only query string change.
src/deckgl-layers/src/wms/wms-layer.ts Update deck.gl imports; add @ts-nocheck.
src/deckgl-layers/src/typedefs/deckgl.d.ts Remove legacy deckgl-typings bridge.
src/deckgl-layers/src/svg-icon-layer/svg-icon-layer.ts Update CompositeLayer props typing + generics; add @ts-nocheck.
src/deckgl-layers/src/svg-icon-layer/scatterplot-icon-layer.ts Switch to luma engine Geometry + geometry override strategy.
src/deckgl-layers/src/raster/webgl/types.ts Remove luma webgl Texture2D import; loosen type.
src/deckgl-layers/src/raster/webgl/texture/rgba-image.ts Remove luma webgl Texture2D import; loosen type.
src/deckgl-layers/src/raster/webgl/texture/mask.ts Remove luma webgl Texture2D import; loosen type.
src/deckgl-layers/src/raster/webgl/texture/combine-bands.ts Remove luma webgl Texture2D import; loosen type.
src/deckgl-layers/src/raster/webgl/pansharpen/pansharpen-brovey.ts Remove luma webgl Texture2D import; loosen type.
src/deckgl-layers/src/raster/webgl/color/colormap.ts Remove luma webgl Texture2D import; loosen type.
src/deckgl-layers/src/raster/types.ts Loosen luma webgl texture types to any.
src/deckgl-layers/src/raster/raster-mesh-layer/raster-mesh-layer.ts Port raster mesh layer to luma 9 pipeline/model/bindings; add redraw scheduling.
src/deckgl-layers/src/raster/raster-mesh-layer/raster-mesh-layer-shaders.ts New shader builders for raster mesh layer (GLSL300).
src/deckgl-layers/src/raster/raster-mesh-layer/matrix.ts Update deck.gl imports; loosen CoordinateSystem typing.
src/deckgl-layers/src/raster/raster-layer/raster-layer.ts Port raster bitmap pipeline to luma 9 shader inputs/bindings; add redraw scheduling.
src/deckgl-layers/src/raster/raster-layer/raster-layer-shaders.ts New shader builders + hook registration + module adapter for luma 9.
src/deckgl-layers/src/raster/images.ts Rework texture creation and sampler params for luma 9 device API.
src/deckgl-layers/src/line-layer/line-layer.ts Port enhanced line attributes to deck.gl 9 attribute API; adjust shader edits.
src/deckgl-layers/src/layer-utils/cpu-aggregator.ts Inline BinSorter/aggregation ops compat to adapt to deck.gl 9 changes.
src/deckgl-layers/src/hexagon-layer/enhanced-hexagon-layer.ts Use native CPU aggregation; add cellOutline in picking info.
src/deckgl-layers/src/grid-layer/enhanced-cpu-grid-layer.ts Use native CPU aggregation; add cellOutline in picking info.
src/deckgl-layers/src/deckgl-extensions/filter-shader-module.ts Update injected shader attributes for deck.gl 9 GLSL.
src/deckgl-layers/src/deckgl-extensions/filter-arrow-layer.ts Update attribute manager config for deck.gl 9 stepMode/type strings.
src/deckgl-layers/src/column-layer/enhanced-column-layer.ts Remove custom draw override; update shader injection for v9 uniforms; add @ts-nocheck.
src/deckgl-layers/src/cluster-layer/cluster-layer.ts Shift to CompositeLayer base; adjust cpuAggregator update wiring; add @ts-nocheck.
src/deckgl-layers/src/3d-building-layer/3d-building-layer.ts Update blending parameters to deck.gl 9 parameters strings; add @ts-nocheck.
src/deckgl-layers/package.json Upgrade deck.gl/aggregation-layers + loaders/luma; add luma engine.
src/deckgl-augmentations.d.ts New type augmentations for deck.gl 9 + geo-layers + luma core.
src/deckgl-arrow-layers/src/utils/validate.ts Use @deck.gl/core import path (no /typed).
src/deckgl-arrow-layers/src/utils/utils.ts Use @deck.gl/core import path (no /typed).
src/deckgl-arrow-layers/src/utils/picking.ts Use @deck.gl/core import path (no /typed).
src/deckgl-arrow-layers/src/types.ts Use @deck.gl/core import path (no /typed).
src/deckgl-arrow-layers/src/layers/geo-arrow-text-layer.ts Update deck.gl imports (no /typed); add @ts-nocheck.
src/deckgl-arrow-layers/src/layers/geo-arrow-scatterplot-layer.ts Update deck.gl imports (no /typed); add @ts-nocheck.
src/deckgl-arrow-layers/src/layers/geo-arrow-arc-layer.ts Update deck.gl imports (no /typed); add @ts-nocheck.
src/deckgl-arrow-layers/package.json Update peer deps to deck.gl 9.2.x.
src/constants/src/default-settings.ts Formatting-only trailing brace alignment.
src/components/src/plot-container.tsx Replace glOptions with deck.gl 9 deviceProps.webgl for export.
src/components/src/modals/export-image-modal.tsx Formatting-only JSX change.
src/components/src/map-view-state-context.tsx Replace MapViewState import with local type alias.
src/components/src/map-container.tsx Migrate to onDeviceInitialized, parameters blending, new picking types, and apply postprocessing patch.
src/components/src/geocoder-panel.tsx Switch FlyToInterpolator import; replace MapViewState import with local type alias.
src/components/src/effects/effect-configurator.tsx Use module propTypes instead of uniforms for UI controls.
src/components/src/editor/feature-action-panel.tsx Switch Feature import to deck.gl-community editable-layers.
src/components/src/editor/editor.tsx Switch Feature typing to deck.gl-community editable-layers.
src/components/src/common/icons/close.tsx Formatting-only SVG JSX change.
src/components/src/common/data-table/index.tsx Minor formatting fix in scroll callback.
src/components/package.json Upgrade deck.gl/react/widgets + mjolnir; loaders; add editable-layers.
src/ai-assistant/src/config/models.ts Replace double-quoted keys with standard object syntax + single quotes.
src/ai-assistant/src/components/ai-assistant-component.tsx Formatting-only hook call cleanup.
src/actions/src/vis-state-actions.ts Update picking type imports to PickingInfo.
src/actions/package.json Upgrade deck.gl core dependency.
package.json Upgrade deck.gl mapbox/test-utils, loaders, luma test-utils; bump TS to 5.6; update resolutions; add math.gl.
jest.config.js Expand transform ignore allowlist for ESM deps (deck/luma/preact/etc.).
examples/replace-component/esbuild.config.mjs Remove /typed aliasing for deck.gl modules.
examples/get-started-vite/package.json Upgrade deck.gl/loaders/luma deps; math.gl/web-mercator bump.
examples/demo-app/package.json Upgrade loaders + deck/luma resolutions.
examples/demo-app/esbuild.config.mjs Remove /typed aliasing for deck.gl modules.
bindings/kepler.gl-jupyter/js/package.json Upgrade loaders and deck.gl resolutions for Jupyter binding.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/utils/src/gl-utils.ts Outdated
Comment thread src/components/src/map-container.tsx Outdated
Comment thread src/deckgl-layers/src/raster/raster-layer/raster-layer.ts Outdated
Comment thread src/layers/src/line-layer/line-layer.ts
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
@igorDykhta
igorDykhta requested review from ilyabo and lixun910 March 31, 2026 12:58

@lixun910 lixun910 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool! Thank you!

…al fields in aggregation - not supported in deck 9

Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
…ng indicator during image export

Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
@igorDykhta
igorDykhta merged commit be6ba64 into master Apr 3, 2026
9 checks passed
@igorDykhta
igorDykhta deleted the igr/deckgl-9-2 branch April 3, 2026 23:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants